home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1993-12-13 | 16.3 KB | 556 lines |
- DEFINITION MODULE POSIX1;
- __DEF_SWITCHES__
- #ifdef HM2
- #ifdef __LONG_WHOLE__
- (*$!i+: Modul muss mit $i- uebersetzt werden! *)
- (*$!w+: Modul muss mit $w- uebersetzt werden! *)
- #else
- (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
- (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
- #endif
- #endif
- #if no_reexport
- # error *** compiler does not allow reexporting!
- #endif
- (****************************************************************************)
- (* Das Modul fasst alle POSIX.1-Aufrufe, -Typen und -Konstanten und ein paar*)
- (* weitere Definitionen, die zwar nicht POSIX sind, aber fuer die Ausfueh- *)
- (* rung der Prozeduren benoetigt werden, aus den unterliegenden Modulen zu- *)
- (* sammen. Fuer Leute, die lieber aus einem einzigen Modul importieren wol- *)
- (* len, und deren Compiler den Reexport erlaubt. *)
- (* Fuer die Beschreibung der Funktionen sollten die entsprechenden Defini- *)
- (* tionsmodule konsultiert werden. *)
- (* -------------------------------------------------------------------------*)
- (* 04-Dez-93, Holger Kleinschmidt & Ulrich Kaiser *)
- (****************************************************************************)
- #if !ISO_proc_const
- FROM SYSTEM IMPORT ADDRESS;
- FROM PORTAB IMPORT SIGNEDLONG,UNSIGNEDWORD;
- FROM types IMPORT StrPtr,StrArray,StrRange;
- #endif
- IMPORT types,e,file,dir,proc,sys,term,sig,jump;
-
- (*===========================================================================*)
- (* Modul: 'e' *)
- (*===========================================================================*)
-
- (* 'e.errno' kann als Variable nicht reexportiert werden *)
- CONST
- E2BIG = e.E2BIG;
- EACCES = e.EACCES;
- EAGAIN = e.EAGAIN;
- EBADF = e.EBADF;
- EBUSY = e.EBUSY;
- ECHILD = e.ECHILD;
- EDEADLK = e.EDEADLK;
- EDOM = e.EDOM;
- EEXIST = e.EEXIST;
- EFAULT = e.EFAULT;
- EFBIG = e.EFBIG;
- EINTR = e.EINTR;
- EINVAL = e.EINVAL;
- EIO = e.EIO;
- EISDIR = e.EISDIR;
- EMFILE = e.EMFILE;
- EMLINK = e.EMLINK;
- ENAMETOOLONG = e.ENAMETOOLONG;
- ENFILE = e.ENFILE;
- ENODEV = e.ENODEV;
- ENOENT = e.ENOENT;
- ENOEXEC = e.ENOEXEC;
- ENOLCK = e.ENOLCK;
- ENOMEM = e.ENOMEM;
- ENOSPC = e.ENOSPC;
- ENOSYS = e.ENOSYS;
- ENOTDIR = e.ENOTDIR;
- ENOTEMPTY = e.ENOTEMPTY;
- ENOTTY = e.ENOTTY;
- ENXIO = e.ENXIO;
- EPERM = e.EPERM;
- EPIPE = e.EPIPE;
- ERANGE = e.ERANGE;
- EROFS = e.EROFS;
- ESPIPE = e.ESPIPE;
- ESRCH = e.ESRCH;
- EXDEV = e.EXDEV;
- ELOOP = e.ELOOP;
-
- (*===========================================================================*)
- (* Modul: 'types' *)
- (*===========================================================================*)
-
- CONST
- NULL = types.NULL;
-
- CONST
- PosixArgMax = types.PosixArgMax;
- PosixChildMax = types.PosixChildMax;
- PosixLinkMax = types.PosixLinkMax;
- PosixMaxCanon = types.PosixMaxCanon;
- PosixMaxInput = types.PosixMaxInput;
- PosixNameMax = types.PosixNameMax;
- PosixNGroupsMax = types.PosixNGroupsMax;
- PosixOpenMax = types.PosixOpenMax;
- PosixPathMax = types.PosixPathMax;
- PosixPipeBuf = types.PosixPipeBuf;
- PosixStreamMax = types.PosixStreamMax;
- PosixSsizeMax = types.PosixSsizeMax;
-
- CONST
- ClkTck = types.ClkTck;
- NGroupsMax = types.NGroupsMax;
- SsizeMax = types.SsizeMax;
-
- TYPE
- uidT = types.uidT;
- gidT = types.gidT;
- inoT = types.inoT;
- timeT = types.timeT;
- offT = types.offT;
- sizeT = types.sizeT;
- ssizeT = types.ssizeT;
- devT = types.devT;
- nlinkT = types.nlinkT;
- pidT = types.pidT;
- clockT = types.clockT;
-
- (*===========================================================================*)
- (* Modul: 'file' *)
- (*===========================================================================*)
-
- TYPE
- FileModes = file.FileModes;
- modeT = file.modeT;
-
- CONST
- sIRWXU = file.sIRWXU;
- sIRWXG = file.sIRWXG;
- sIRWXO = file.sIRWXO;
-
- CONST
- sIFMT = file.sIFMT;
- sIFCHR = file.sIFCHR;
- sIFDIR = file.sIFDIR;
- sIFBLK = file.sIFBLK;
- sIFREG = file.sIFREG;
- sIFIFO = file.sIFIFO;
- sIFLNK = file.sIFLNK;
-
- TYPE
- StatRec = file.StatRec;
-
- TYPE
- AccessModes = file.AccessModes;
- AccessMode = file.AccessMode;
-
- CONST
- fOK = file.fOK;
-
- TYPE
- UTimeBuf = file.UTimeBuf;
-
- TYPE
- OpenModes = file.OpenModes;
- OpenMode = file.OpenMode;
-
- CONST
- oACCMODE = file.oACCMODE;
-
- oRDONLY = file.oRDONLY;
- oWRONLY = file.oWRONLY;
- oRDWR = file.oRDWR;
-
- TYPE
- SeekMode = file.SeekMode;
-
- TYPE
- FDFlags = file.FDFlags;
- FDFlag = file.FDFlag;
-
- TYPE
- FcntlCmd = file.FcntlCmd;
-
- TYPE
- LockType = file.LockType;
-
- TYPE
- FlockRec = file.FlockRec;
-
- TYPE
- FcntlArg = file.FcntlArg;
-
-
- TYPE
- PipeBuf = file.PipeBuf;
-
- CONST
- StdinFileNo = file.StdinFileNo;
- StdoutFileNo = file.StdoutFileNo;
- StderrFileNo = file.StderrFileNo;
-
-
- #if ISO_proc_const
- CONST
- creat = file.creat;
- open = file.open;
- fcntl = file.fcntl;
- close = file.close;
- read = file.read;
- write = file.write;
- lseek = file.lseek;
- ftruncate = file.ftruncate;
- dup = file.dup;
- dup2 = file.dup2;
- umask = file.umask;
- chmod = file.chmod;
- chown = file.chown;
- utime = file.utime;
- stat = file.stat;
- fstat = file.fstat;
- lstat = file.lstat;
- sISCHR = file.sISCHR;
- sISDIR = file.sISDIR;
- sISBLK = file.sISBLK;
- sISREG = file.sISREG;
- sISFIFO = file.sISFIFO;
- sISLNK = file.sISLNK;
- access = file.access;
- pipe = file.pipe;
- #else
- VAR (* READ ONLY! *)
- creat : PROCEDURE(REF ARRAY OF CHAR,modeT):INTEGER;
- open : PROCEDURE(REF ARRAY OF CHAR,OpenMode,modeT):INTEGER;
- fcntl : PROCEDURE(INTEGER,FcntlCmd,VAR FcntlArg):INTEGER;
- close : PROCEDURE(INTEGER):INTEGER;
- read : PROCEDURE(INTEGER,ADDRESS,sizeT):ssizeT;
- write : PROCEDURE(INTEGER,ADDRESS,sizeT):ssizeT;
- lseek : PROCEDURE(INTEGER,offT,SeekMode):offT;
- ftruncate : PROCEDURE(INTEGER,offT):INTEGER;
- dup : PROCEDURE(INTEGER):INTEGER;
- dup2 : PROCEDURE(INTEGER,INTEGER):INTEGER;
- umask : PROCEDURE(modeT):modeT;
- chmod : PROCEDURE(REF ARRAY OF CHAR,modeT):INTEGER;
- chown : PROCEDURE(REF ARRAY OF CHAR,uidT,gidT):INTEGER;
- utime : PROCEDURE(REF ARRAY OF CHAR,UTimeBuf):INTEGER;
- stat : PROCEDURE(REF ARRAY OF CHAR,VAR StatRec):INTEGER;
- fstat : PROCEDURE(INTEGER,VAR StatRec):INTEGER;
- lstat : PROCEDURE(REF ARRAY OF CHAR,VAR StatRec):INTEGER;
- sISCHR : PROCEDURE(modeT):BOOLEAN;
- sISDIR : PROCEDURE(modeT):BOOLEAN;
- sISBLK : PROCEDURE(modeT):BOOLEAN;
- sISREG : PROCEDURE(modeT):BOOLEAN;
- sISFIFO : PROCEDURE(modeT):BOOLEAN;
- sISLNK : PROCEDURE(modeT):BOOLEAN;
- access : PROCEDURE(REF ARRAY OF CHAR,AccessMode):INTEGER;
- pipe : PROCEDURE(VAR PipeBuf):INTEGER;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'dir' *)
- (*===========================================================================*)
-
- TYPE
- DIR = dir.DIR;
- DirentPtr = dir.DirentPtr;
- DirentRec = dir.DirentRec;
-
- #if ISO_proc_const
- CONST
- chdir = dir.chdir;
- getcwd = dir.getcwd;
- mkdir = dir.mkdir;
- rmdir = dir.rmdir;
- link = dir.link;
- unlink = dir.unlink;
- rename = dir.rename;
- opendir = dir.opendir;
- readdir = dir.readdir;
- rewinddir = dir.rewinddir;
- closedir = dir.closedir;
- symlink = dir.symlink;
- readlink = dir.readlink;
- #else
- VAR (* READ ONLY! *)
- chdir : PROCEDURE(REF ARRAY OF CHAR):INTEGER;
- getcwd : PROCEDURE(StrPtr,StrRange):StrPtr;
- mkdir : PROCEDURE(REF ARRAY OF CHAR,modeT):INTEGER;
- rmdir : PROCEDURE(REF ARRAY OF CHAR):INTEGER;
- link : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):INTEGER;
- unlink : PROCEDURE(REF ARRAY OF CHAR):INTEGER;
- rename : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):INTEGER;
- opendir : PROCEDURE(REF ARRAY OF CHAR):DIR;
- readdir : PROCEDURE(DIR):DirentPtr;
- rewinddir : PROCEDURE(DIR);
- closedir : PROCEDURE(VAR DIR):INTEGER;
- symlink : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):INTEGER;
- readlink : PROCEDURE(REF ARRAY OF CHAR,StrPtr,StrRange):INTEGER;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'proc' *)
- (*===========================================================================*)
-
- TYPE
- WaitVal = proc.WaitVal;
- WaitOptions = proc.WaitOptions;
- WaitOption = proc.WaitOption;
-
- TYPE
- TmsRec = proc.TmsRec;
-
- #if ISO_proc_const
- CONST
- getpid = proc.getpid;
- getppid = proc.getppid;
- getuid = proc.getuid;
- getgid = proc.getgid;
- geteuid = proc.geteuid;
- getegid = proc.getegid;
- setuid = proc.setuid;
- setgid = proc.setgid;
- getpgrp = proc.getpgrp;
- setpgid = proc.setpgid;
- setsid = proc.setsid;
- fork = proc.fork;
- execve = proc.execve;
- execv = proc.execv;
- execvp = proc.execvp;
- waitpid = proc.waitpid;
- wait = proc.wait;
- WIFEXITED = proc.WIFEXITED;
- WEXITSTATUS = proc.WEXITSTATUS;
- WIFSIGNALED = proc.WIFSIGNALED;
- WTERMSIG = proc.WTERMSIG;
- WIFSTOPPED = proc.WIFSTOPPED;
- WSTOPSIG = proc.WSTOPSIG;
- times = proc.times;
- Exit = proc.Exit;
- #else
- VAR (* READ ONLY! *)
- getpid : PROCEDURE():pidT;
- getppid : PROCEDURE():pidT;
- getuid : PROCEDURE():uidT;
- getgid : PROCEDURE():gidT;
- geteuid : PROCEDURE():uidT;
- getegid : PROCEDURE():gidT;
- setuid : PROCEDURE(uidT):INTEGER;
- setgid : PROCEDURE(gidT):INTEGER;
- getpgrp : PROCEDURE():pidT;
- setpgid : PROCEDURE(pidT,pidT):INTEGER;
- setsid : PROCEDURE():pidT;
- fork : PROCEDURE():pidT;
- execve : PROCEDURE(REF ARRAY OF CHAR,StrArray,StrArray):INTEGER;
- execv : PROCEDURE(REF ARRAY OF CHAR,StrArray):INTEGER;
- execvp : PROCEDURE(REF ARRAY OF CHAR,StrArray):INTEGER;
- waitpid : PROCEDURE(pidT,VAR WaitVal,WaitOption):pidT;
- wait : PROCEDURE(VAR WaitVal):pidT;
- WIFEXITED : PROCEDURE(WaitVal):BOOLEAN;
- WEXITSTATUS : PROCEDURE(WaitVal):INTEGER;
- WIFSIGNALED : PROCEDURE(WaitVal):BOOLEAN;
- WTERMSIG : PROCEDURE(WaitVal):CARDINAL;
- WIFSTOPPED : PROCEDURE(WaitVal):BOOLEAN;
- WSTOPSIG : PROCEDURE(WaitVal):CARDINAL;
- times : PROCEDURE(VAR TmsRec):clockT;
- Exit : PROCEDURE(INTEGER);
- #endif
-
- (*===========================================================================*)
- (* Modul: 'term' *)
- (*===========================================================================*)
-
- CONST
- LCtermid = term.LCtermid;
-
- TYPE
- tciflags = term.tciflags;
- tciflagT = term.tciflagT;
-
- TYPE
- tcoflags = term.tcoflags;
- tcoflagT = term.tcoflagT;
-
- TYPE
- tccflags = term.tccflags;
- tccflagT = term.tccflagT;
-
- TYPE
- tclflags = term.tclflags;
- tclflagT = term.tclflagT;
-
- TYPE
- speedT = term.speedT;
-
- TYPE
- ccT = term.ccT;
- ccIdx = term.ccIdx;
-
- CONST
- NCCS = term.NCCS;
-
- CONST
- CR = term.CR;
- NL = term.NL;
-
- TYPE
- TermiosRec = term.TermiosRec;
-
- TYPE
- AttrActions = term.AttrActions;
-
- TYPE
- FlowActions = term.FlowActions;
-
- TYPE
- QueueTypes = term.QueueTypes;
-
-
- #if ISO_proc_const
- CONST
- isatty = term.isatty;
- ttyname = term.ttyname;
- ctermid = term.ctermid;
- cfgetispeed = term.cfgetispeed;
- cfgetospeed = term.cfgetospeed;
- cfsetispeed = term.cfsetispeed;
- cfsetospeed = term.cfsetospeed;
- tcgetattr = term.tcgetattr;
- tcsetattr = term.tcsetattr;
- tcsendbreak = term.tcsendbreak;
- tcdrain = term.tcdrain;
- tcflow = term.tcflow;
- tcflush = term.tcflush;
- tcgetpgrp = term.tcgetpgrp;
- tcsetpgrp = term.tcsetpgrp;
- #else
- VAR (* READ ONLY! *)
- isatty : PROCEDURE(INTEGER):INTEGER;
- ttyname : PROCEDURE(INTEGER):StrPtr;
- ctermid : PROCEDURE(StrPtr):StrPtr;
- cfgetispeed : PROCEDURE(TermiosRec):speedT;
- cfsetispeed : PROCEDURE(TermiosRec,speedT):INTEGER;
- cfgetospeed : PROCEDURE(TermiosRec):speedT;
- cfsetospeed : PROCEDURE(TermiosRec,speedT):INTEGER;
- tcgetattr : PROCEDURE(INTEGER,VAR TermiosRec):INTEGER;
- tcsetattr : PROCEDURE(INTEGER,AttrActions,TermiosRec):INTEGER;
- tcsendbreak : PROCEDURE(INTEGER,INTEGER):INTEGER;
- tcdrain : PROCEDURE(INTEGER):INTEGER;
- tcflow : PROCEDURE(INTEGER,FlowActions):INTEGER;
- tcflush : PROCEDURE(INTEGER,QueueTypes):INTEGER;
- tcgetpgrp : PROCEDURE(INTEGER):pidT;
- tcsetpgrp : PROCEDURE(INTEGER,pidT):INTEGER;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'sig' *)
- (*===========================================================================*)
-
- CONST
- SigDfl = sig.SigDfl;
- SigIgn = sig.SigIgn;
-
- TYPE
- Signal = sig.Signal;
-
- TYPE
- SigsetPtr = sig.SigsetPtr;
-
- TYPE
- sigsetT = sig.sigsetT;
-
- TYPE
- SigHandler = sig.SigHandler;
-
- TYPE
- SignalHandler = sig.SignalHandler;
-
- TYPE
- SaFlags = sig.SaFlags;
-
- TYPE
- SigactionPtr = sig.SigactionPtr;
- SigactionRec = sig.SigactionRec;
-
- TYPE
- BlockType = sig.BlockType;
-
- #if ISO_proc_const
- CONST
- sigemptyset = sig.sigemptyset;
- sigfillset = sig.sigfillset;
- sigaddset = sig.sigaddset;
- sigdelset = sig.sigdelset;
- sigismember = sig.sigismember;
- sigaction = sig.sigaction;
- sigprocmask = sig.sigprocmask;
- sigpending = sig.sigpending;
- kill = sig.kill;
- pause = sig.pause;
- sigsuspend = sig.sigsuspend;
- sleep = sig.sleep;
- alarm = sig.alarm;
- #else
- VAR (* READ ONLY! *)
- sigemptyset : PROCEDURE(VAR sigsetT);
- sigfillset : PROCEDURE(VAR sigsetT);
- sigaddset : PROCEDURE(VAR sigsetT,Signal):INTEGER;
- sigdelset : PROCEDURE(VAR sigsetT,Signal):INTEGER;
- sigismember : PROCEDURE(sigsetT,Signal):INTEGER;
- sigaction : PROCEDURE(Signal,SigactionPtr,SigactionPtr):INTEGER;
- sigprocmask : PROCEDURE(BlockType,SigsetPtr,SigsetPtr):INTEGER;
- sigpending : PROCEDURE(VAR sigsetT):INTEGER;
- kill : PROCEDURE(pidT,Signal):INTEGER;
- pause : PROCEDURE():INTEGER;
- sigsuspend : PROCEDURE(sigsetT):INTEGER;
- sleep : PROCEDURE(CARDINAL):CARDINAL;
- alarm : PROCEDURE(CARDINAL):CARDINAL;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'sys' *)
- (*===========================================================================*)
-
- TYPE
- PConfVal = sys.PConfVal;
- SConfVal = sys.SConfVal;
-
- TYPE
- UtsnameRec = sys.UtsnameRec;
-
- #if ISO_proc_const
- CONST
- uname = sys.uname;
- pathconf = sys.pathconf;
- sysconf = sys.sysconf;
- time = sys.time;
- #else
- VAR (* READ ONLY! *)
- uname : PROCEDURE(VAR UtsnameRec):INTEGER;
- pathconf : PROCEDURE(REF ARRAY OF CHAR,PConfVal):SIGNEDLONG;
- sysconf : PROCEDURE(SConfVal):SIGNEDLONG;
- time : PROCEDURE(VAR timeT);
- #endif
-
- (*===========================================================================*)
- (* Modul: 'jump' *)
- (*===========================================================================*)
-
- TYPE
- JmpBuf = jump.JmpBuf;
- SigJmpBuf = jump.SigJmpBuf;
-
- #if ISO_proc_const
- CONST
- setjmp = jump.setjmp;
- longjmp = jump.longjmp;
- sigsetjmp = jump.sigsetjmp;
- siglongjmp = jump.siglongjmp;
- #else
- VAR (* READ ONLY! *)
- setjmp : PROCEDURE(VAR JmpBuf):INTEGER;
- longjmp : PROCEDURE(VAR JmpBuf,INTEGER);
- sigsetjmp : PROCEDURE(VAR SigJmpBuf,UNSIGNEDWORD):INTEGER;
- siglongjmp : PROCEDURE(VAR SigJmpBuf,INTEGER);
- #endif
-
- END POSIX1.
-